#include <stdio.h>
#include <stdlib.h>
/**
 * 这是我理解的一个误区，以为直接设置缓冲区，然后往缓冲区写内容，就会直接同步到文件，实际上不会。
 * 
 * 这个和rewind_example.c一样，没有编写汇编代码，统一在file_operation_example.c中编写汇编。
*/
int main(void)
{
    char* fn = "aa.txt";
    char* buf = malloc(20);
    FILE *fp;
    if ((fp = fopen(fn, "a+")) == NULL) 
    {
        fprintf(stderr, "open file failed!\n");
        exit(EXIT_FAILURE);
    }
    if (setvbuf(fp, buf, _IONBF, 20) != 0) {
        fprintf(stderr, "setvbuf failed!\n");
        exit(EXIT_FAILURE);
    }
    for (size_t i = 0; i < 80; i++)
    {
        buf[i % 20] = 'a' + (i % 20);
    }
    fclose(fp);
    return 0;
}